package com.example.graphic.AI;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 图片生成文案响应实体
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ImageDescriptionResponse implements AIResponse {
    
    /** 短文案 */
    @JsonProperty("short_copy")
    private String shortCopy;
    
    /** 长文案 */
    @JsonProperty("long_copy")
    private String longCopy;
    
    @Override
    public boolean isSuccess() {
        return (shortCopy != null && !shortCopy.trim().isEmpty()) || 
               (longCopy != null && !longCopy.trim().isEmpty());
    }
    
    /**
     * 获取生成的文案文本（优先返回短文案，如果没有则返回长文案）
     * @return 文案文本，如果没有则返回空字符串
     */
    public String getGeneratedText() {
        // 优先返回短文案
        if (shortCopy != null && !shortCopy.trim().isEmpty()) {
            return shortCopy;
        }
        
        // 如果没有短文案，返回长文案
        if (longCopy != null && !longCopy.trim().isEmpty()) {
            return longCopy;
        }
        
        return "";
    }
    
    /**
     * 获取完整的文案内容（包含短文案和长文案）
     * @return 完整的文案文本
     */
    public String getFullText() {
        StringBuilder fullText = new StringBuilder();
        
        // 添加短文案
        if (shortCopy != null && !shortCopy.trim().isEmpty()) {
            fullText.append("短文案:\n").append(shortCopy).append("\n\n");
        }
        
        // 添加长文案
        if (longCopy != null && !longCopy.trim().isEmpty()) {
            fullText.append("长文案:\n").append(longCopy);
        }
        
        return fullText.toString().trim();
    }
}